1 /* 2 3 Boost Software License - Version 1.0 - August 17th, 2003 4 5 Permission is hereby granted, free of charge, to any person or organization 6 obtaining a copy of the software and accompanying documentation covered by 7 this license (the "Software") to use, reproduce, display, distribute, 8 execute, and transmit the Software, and to prepare derivative works of the 9 Software, and to permit third-parties to whom the Software is furnished to 10 do so, all subject to the following: 11 12 The copyright notices in the Software and this entire statement, including 13 the above license grant, this restriction and the following disclaimer, 14 must be included in all copies of the Software, in whole or in part, and 15 all derivative works of the Software, unless such copies or derivative 16 works are solely in the form of machine-executable object code generated by 17 a source language processor. 18 19 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT 22 SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE 23 FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, 24 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 25 DEALINGS IN THE SOFTWARE. 26 27 */ 28 29 module derelict.glib.gdatetime; 30 31 import derelict.glib.gtypes; 32 import derelict.glib.glibconfig; 33 import derelict.glib.gdate; 34 import derelict.glib.gtimezone; 35 import core.stdc.time; 36 import core.stdc.config; 37 38 extern (C): 39 40 alias c_long GTimeSpan; 41 alias _GDateTime GDateTime; 42 43 struct _GDateTime; 44 45 version(Derelict_Link_Static) 46 { 47 extern( C ) nothrow 48 { 49 void g_date_time_unref(GDateTime* datetime); 50 GDateTime* g_date_time_ref(GDateTime* datetime); 51 GDateTime* g_date_time_new_now(GTimeZone* tz); 52 GDateTime* g_date_time_new_now_local(); 53 GDateTime* g_date_time_new_now_utc(); 54 GDateTime* g_date_time_new_from_unix_local(gint64 t); 55 GDateTime* g_date_time_new_from_unix_utc(gint64 t); 56 GDateTime* g_date_time_new_from_timeval_local(const(GTimeVal)* tv); 57 GDateTime* g_date_time_new_from_timeval_utc(const(GTimeVal)* tv); 58 GDateTime* g_date_time_new(GTimeZone* tz, gint year, gint month, gint day, gint hour, gint minute, gdouble seconds); 59 GDateTime* g_date_time_new_local(gint year, gint month, gint day, gint hour, gint minute, gdouble seconds); 60 GDateTime* g_date_time_new_utc(gint year, gint month, gint day, gint hour, gint minute, gdouble seconds); 61 GDateTime* g_date_time_add(GDateTime* datetime, GTimeSpan timespan); 62 GDateTime* g_date_time_add_years(GDateTime* datetime, gint years); 63 GDateTime* g_date_time_add_months(GDateTime* datetime, gint months); 64 GDateTime* g_date_time_add_weeks(GDateTime* datetime, gint weeks); 65 GDateTime* g_date_time_add_days(GDateTime* datetime, gint days); 66 GDateTime* g_date_time_add_hours(GDateTime* datetime, gint hours); 67 GDateTime* g_date_time_add_minutes(GDateTime* datetime, gint minutes); 68 GDateTime* g_date_time_add_seconds(GDateTime* datetime, gdouble seconds); 69 GDateTime* g_date_time_add_full(GDateTime* datetime, gint years, gint months, gint days, gint hours, gint minutes, gdouble seconds); 70 gint g_date_time_compare(gconstpointer dt1, gconstpointer dt2); 71 GTimeSpan g_date_time_difference(GDateTime* end, GDateTime* begin); 72 guint g_date_time_hash(gconstpointer datetime); 73 gboolean g_date_time_equal(gconstpointer dt1, gconstpointer dt2); 74 void g_date_time_get_ymd(GDateTime* datetime, gint* year, gint* month, gint* day); 75 gint g_date_time_get_year(GDateTime* datetime); 76 gint g_date_time_get_month(GDateTime* datetime); 77 gint g_date_time_get_day_of_month(GDateTime* datetime); 78 gint g_date_time_get_week_numbering_year(GDateTime* datetime); 79 gint g_date_time_get_week_of_year(GDateTime* datetime); 80 gint g_date_time_get_day_of_week(GDateTime* datetime); 81 gint g_date_time_get_day_of_year(GDateTime* datetime); 82 gint g_date_time_get_hour(GDateTime* datetime); 83 gint g_date_time_get_minute(GDateTime* datetime); 84 gint g_date_time_get_second(GDateTime* datetime); 85 gint g_date_time_get_microsecond(GDateTime* datetime); 86 gdouble g_date_time_get_seconds(GDateTime* datetime); 87 gint64 g_date_time_to_unix(GDateTime* datetime); 88 gboolean g_date_time_to_timeval(GDateTime* datetime, GTimeVal* tv); 89 GTimeSpan g_date_time_get_utc_offset(GDateTime* datetime); 90 const(gchar)* g_date_time_get_timezone_abbreviation(GDateTime* datetime); 91 gboolean g_date_time_is_daylight_savings(GDateTime* datetime); 92 GDateTime* g_date_time_to_timezone(GDateTime* datetime, GTimeZone* tz); 93 GDateTime* g_date_time_to_local(GDateTime* datetime); 94 GDateTime* g_date_time_to_utc(GDateTime* datetime); 95 gchar* g_date_time_format(GDateTime* datetime, const(gchar)* format); 96 } 97 } 98 else 99 { 100 extern( C ) nothrow 101 { 102 alias da_g_date_time_unref = void function(GDateTime* datetime); 103 alias da_g_date_time_ref = GDateTime* function(GDateTime* datetime); 104 alias da_g_date_time_new_now = GDateTime* function(GTimeZone* tz); 105 alias da_g_date_time_new_now_local = GDateTime* function(); 106 alias da_g_date_time_new_now_utc = GDateTime* function(); 107 alias da_g_date_time_new_from_unix_local = GDateTime* function(gint64 t); 108 alias da_g_date_time_new_from_unix_utc = GDateTime* function(gint64 t); 109 alias da_g_date_time_new_from_timeval_local = GDateTime* function(const(GTimeVal)* tv); 110 alias da_g_date_time_new_from_timeval_utc = GDateTime* function(const(GTimeVal)* tv); 111 alias da_g_date_time_new = GDateTime* function(GTimeZone* tz, gint year, gint month, gint day, gint hour, gint minute, gdouble seconds); 112 alias da_g_date_time_new_local = GDateTime* function(gint year, gint month, gint day, gint hour, gint minute, gdouble seconds); 113 alias da_g_date_time_new_utc = GDateTime* function(gint year, gint month, gint day, gint hour, gint minute, gdouble seconds); 114 alias da_g_date_time_add = GDateTime* function(GDateTime* datetime, GTimeSpan timespan); 115 alias da_g_date_time_add_years = GDateTime* function(GDateTime* datetime, gint years); 116 alias da_g_date_time_add_months = GDateTime* function(GDateTime* datetime, gint months); 117 alias da_g_date_time_add_weeks = GDateTime* function(GDateTime* datetime, gint weeks); 118 alias da_g_date_time_add_days = GDateTime* function(GDateTime* datetime, gint days); 119 alias da_g_date_time_add_hours = GDateTime* function(GDateTime* datetime, gint hours); 120 alias da_g_date_time_add_minutes = GDateTime* function(GDateTime* datetime, gint minutes); 121 alias da_g_date_time_add_seconds = GDateTime* function(GDateTime* datetime, gdouble seconds); 122 alias da_g_date_time_add_full = GDateTime* function(GDateTime* datetime, gint years, gint months, gint days, gint hours, gint minutes, gdouble seconds); 123 alias da_g_date_time_compare = gint function(gconstpointer dt1, gconstpointer dt2); 124 alias da_g_date_time_difference = GTimeSpan function(GDateTime* end, GDateTime* begin); 125 alias da_g_date_time_hash = guint function(gconstpointer datetime); 126 alias da_g_date_time_equal = gboolean function(gconstpointer dt1, gconstpointer dt2); 127 alias da_g_date_time_get_ymd = void function(GDateTime* datetime, gint* year, gint* month, gint* day); 128 alias da_g_date_time_get_year = gint function(GDateTime* datetime); 129 alias da_g_date_time_get_month = gint function(GDateTime* datetime); 130 alias da_g_date_time_get_day_of_month = gint function(GDateTime* datetime); 131 alias da_g_date_time_get_week_numbering_year = gint function(GDateTime* datetime); 132 alias da_g_date_time_get_week_of_year = gint function(GDateTime* datetime); 133 alias da_g_date_time_get_day_of_week = gint function(GDateTime* datetime); 134 alias da_g_date_time_get_day_of_year = gint function(GDateTime* datetime); 135 alias da_g_date_time_get_hour = gint function(GDateTime* datetime); 136 alias da_g_date_time_get_minute = gint function(GDateTime* datetime); 137 alias da_g_date_time_get_second = gint function(GDateTime* datetime); 138 alias da_g_date_time_get_microsecond = gint function(GDateTime* datetime); 139 alias da_g_date_time_get_seconds = gdouble function(GDateTime* datetime); 140 alias da_g_date_time_to_unix = gint64 function(GDateTime* datetime); 141 alias da_g_date_time_to_timeval = gboolean function(GDateTime* datetime, GTimeVal* tv); 142 alias da_g_date_time_get_utc_offset = GTimeSpan function(GDateTime* datetime); 143 alias da_g_date_time_get_timezone_abbreviation = const(gchar)* function(GDateTime* datetime); 144 alias da_g_date_time_is_daylight_savings = gboolean function(GDateTime* datetime); 145 alias da_g_date_time_to_timezone = GDateTime* function(GDateTime* datetime, GTimeZone* tz); 146 alias da_g_date_time_to_local = GDateTime* function(GDateTime* datetime); 147 alias da_g_date_time_to_utc = GDateTime* function(GDateTime* datetime); 148 alias da_g_date_time_format = gchar* function(GDateTime* datetime, const(gchar)* format); 149 } 150 151 __gshared 152 { 153 da_g_date_time_unref g_date_time_unref; 154 da_g_date_time_ref g_date_time_ref; 155 da_g_date_time_new_now g_date_time_new_now; 156 da_g_date_time_new_now_local g_date_time_new_now_local; 157 da_g_date_time_new_now_utc g_date_time_new_now_utc; 158 da_g_date_time_new_from_unix_local g_date_time_new_from_unix_local; 159 da_g_date_time_new_from_unix_utc g_date_time_new_from_unix_utc; 160 da_g_date_time_new_from_timeval_local g_date_time_new_from_timeval_local; 161 da_g_date_time_new_from_timeval_utc g_date_time_new_from_timeval_utc; 162 da_g_date_time_new g_date_time_new; 163 da_g_date_time_new_local g_date_time_new_local; 164 da_g_date_time_new_utc g_date_time_new_utc; 165 da_g_date_time_add g_date_time_add; 166 da_g_date_time_add_years g_date_time_add_years; 167 da_g_date_time_add_months g_date_time_add_months; 168 da_g_date_time_add_weeks g_date_time_add_weeks; 169 da_g_date_time_add_days g_date_time_add_days; 170 da_g_date_time_add_hours g_date_time_add_hours; 171 da_g_date_time_add_minutes g_date_time_add_minutes; 172 da_g_date_time_add_seconds g_date_time_add_seconds; 173 da_g_date_time_add_full g_date_time_add_full; 174 da_g_date_time_compare g_date_time_compare; 175 da_g_date_time_difference g_date_time_difference; 176 da_g_date_time_hash g_date_time_hash; 177 da_g_date_time_equal g_date_time_equal; 178 da_g_date_time_get_ymd g_date_time_get_ymd; 179 da_g_date_time_get_year g_date_time_get_year; 180 da_g_date_time_get_month g_date_time_get_month; 181 da_g_date_time_get_day_of_month g_date_time_get_day_of_month; 182 da_g_date_time_get_week_numbering_year g_date_time_get_week_numbering_year; 183 da_g_date_time_get_week_of_year g_date_time_get_week_of_year; 184 da_g_date_time_get_day_of_week g_date_time_get_day_of_week; 185 da_g_date_time_get_day_of_year g_date_time_get_day_of_year; 186 da_g_date_time_get_hour g_date_time_get_hour; 187 da_g_date_time_get_minute g_date_time_get_minute; 188 da_g_date_time_get_second g_date_time_get_second; 189 da_g_date_time_get_microsecond g_date_time_get_microsecond; 190 da_g_date_time_get_seconds g_date_time_get_seconds; 191 da_g_date_time_to_unix g_date_time_to_unix; 192 da_g_date_time_to_timeval g_date_time_to_timeval; 193 da_g_date_time_get_utc_offset g_date_time_get_utc_offset; 194 da_g_date_time_get_timezone_abbreviation g_date_time_get_timezone_abbreviation; 195 da_g_date_time_is_daylight_savings g_date_time_is_daylight_savings; 196 da_g_date_time_to_timezone g_date_time_to_timezone; 197 da_g_date_time_to_local g_date_time_to_local; 198 da_g_date_time_to_utc g_date_time_to_utc; 199 da_g_date_time_format g_date_time_format; 200 } 201 }